Industrial controllers historically have operated in factory networks where a plurality of controllers and associated I/O modules communicate. These lower level control elements are often in communication with higher level computing systems or servers that aggregate data from the controllers and help to manage day-to-day activities of an enterprise. As systems have become more complex however, communications and functional cooperation between components has become a challenge. For instance, when users purchase multiple products from one or more vendors there is often limited interoperability and consistency between such products. Software and control engineers must then learn their unique product and how the components interact with each other. Limited product and component consistency suggest that techniques engineers learn in one product do not necessarily carry over to other implementations. In general, control and application systems use different interfaces that make mapping difficult; meanwhile qualified personnel that understand both hardware and software environments are in short supply and command high salaries.
Often times, integration of products (production and automation systems in particular) is too complex and difficult to manage. Process and control engineers cannot code and configure their respective components of a solution without concern for other system components. In addition, system startup metrics are generally not sufficient to supply clear and measurable information for the user/integrator. In one example, a user specifies a line production system with both control and software system components. The development (customization) and integration cost is significant allowing for long ramp-up and integration due to the complexity of connecting systems and uncertainty of how the system will perform. This has a significant impact beyond the cost of the control system as line commissioning and ramp-up are delayed during control system integration. A more predictable process and less complex system integration capability will reduce these costs.
Another problem with current control solutions is that users currently focus on implementation and glue logic rather than the production solution at hand. The underlying technical details have become a primary worry where engineers from multiple environments do not focus on process information (application level concerns) and values exchanged, rather they more often focus on the “how” not the “what.” For instance, a user may decide to automate a manual section of their plant. The design may start at a high level but soon becomes a series of discussions regarding nonfunctional requirements e.g., DCOM, TCP, transaction rates, and the like. While these nonfunctional requirements are important, the design of functional requirements is where the true value is to the designer or end user. Thus, the user would prefer to focus on functional requirements (equipment control, product flow control, and so forth) providing direct improvements in value rather than dealing with superfluous technology issues.
In another case, system design does not sufficiently enable trade-offs between overhead burden (memory footprint, CPU cycles, and so forth) and application coupling. For instance, processing load should be better distributed across the system in accordance with system capabilities. Thus, if one part of the system is shut down, alternative processing capability should be in place to allow production to continue. For example, a user initially designs and installs a control system suiting their immediate needs. Incremental changes are then applied to controllers and often new interface functions are added to the human machine interface (HMI) for such controllers. Current solutions however do not facilitate a smooth and uncomplicated transition for the respective changes. Multiple technologies underneath many vendors' products complicate configuration and management of systems. This is also aggravated when third party systems are involved. Such complexity hinders the system's capacity to provide higher-level information and reduces its ability to easily configure such systems.